COMSOL问题集合6

您所在的位置:网站首页 comsol 导入数据excel COMSOL问题集合6

COMSOL问题集合6

2023-03-22 15:12| 来源: 网络整理| 查看: 265

文章来源-公众号:有限元仿真分析

原文链接:COMSOL问题集合6

1

是否可以显示任意角度的切片图?比如,切面不平行于坐标平面,甚至 改变切面形状?

绘制任意角度的切片图的常规方法是通过剖面图参数对话框来完成。点击Slice标签,输入三个坐标点定义一个截面。绘图参数对话框中的等表面标签提供更自由的切面,只要在表达式编辑框中输入一个具有等值面格式的表达式即可定义切面。点击颜色数据标签,选择颜色数据选择框,在表达式和等表面层数编辑框中进行设定需要显示的数量以及切面数。例如:在等表面表达式中输入 x^2+y^2+z^2,在单位球上显示u的解。在颜色表达式中设置u,并将以等位层决定向量设置为1。

另外一个方法是,在几何模型中绘制感兴趣的表面,这样可以获得内部表面,然后直接对边界进行显示。

2

COMSOL 中导入 DXF 文件时出现错误?

为了能使用自动网格划分,COMSOL需要高精度的CAD 绘图。如果不能满足这些要求,则需要更新几何模型。通常在DXF 文件几何模型中存在一些小间隙和小变。如果存在过于明显的小间隙或小边,COMSOL有可能不能创建一个可行的 2D几何实体或可接受的网格。为了消除这些小边和小间隙,用户必须调整修补容差。要指定修补容差,可在从文件导入CAD 模型对话框中点击选项按钮,此容差决定了导入的几何体中曲线端点间的最大距离。为了在指定容差范围内消除曲线间端点之间的间隙,必须激活“边接合”属性,该复选框缺省是被选中的。

3

为什么使用“重置模型”选项?清除模型的历史记录

当把模型保存为M-文件时,COMSOL会默认保存所有的命令,这使得文件变大,并且不容易处理。使用文件菜单下“重置模型”选项可以使脚本变得清晰,因为它仅包含和当前模型相关的命令。

导入 FEM 结构后另存为 M-文件

如果用户在图形用户界面中导入FEM结构,在“另存为”选项中没有包括“*.m”的格式。为了能把模型保存为M-文件,用户必须重置模型。重置模型的过程如下:1. 在“文件”菜单中选择“重置模型”2. 当出现警告信息时,点击“确定”3. 重划网格并再次求解模型4. 从“文件”菜单选择“另存为”和“模型M文件…”5. 输入文件名并点击“Save”按钮注意,当选择了“重置模型”后,实际上清除了已计算的解和网格。如果这个解要通过很长时间的计算才能获得,那么选择该操作时需要谨慎。有时在重置了模型后,几何模型会以二进制文件保存。用户可以在M-文件的同一文件目录中找到这个文件,此文件和 M-文件的文件名相同,扩展名为“.mphbin”。在运行这个M-文件模型时需要这个二进制文件。

4

如何求解高于 2 阶的 PDE?比如求解 U(x,y)的方程 uxxxx + uxxyy+ uyyyy = f

引入 u 的 2 阶微分,令P = uxx,Q = uyy,方程变为:Pxx + Pyy + Qyy = f.现在可以用 COMSOL Multiphysics 求解如下等价的 u, P, Q 的 PDEs。Pxx + Pyy + Qyy =fuxx = Puyy = Q这个方程组可以通过泛用型PDE应用模式来求解,因变量是u,P,Q,模型方程系数为:Gamma1 = (Px,Py+Qy), F1 =fGamma2 = (ux,0), F2 =PGamma3 = (0,uy), F3 =Q对于边界条件,按照如下情况处理:a) 在边界上给定u,uxx,和uyy,可以通过对u,P,Q 使用Dirichlet边界条件来实现。b) 在边界上给定u 及其法向微分du/dn。这表明u的切向微分也同样可以计算,因此在边界上已知ux和uy的表达式。这些边界条件可以通过对u 使用Dirichlet边界条件以及对P和Q 使用Neumann边界条件来实现。

0 =(u的给定值)- u,-n*Gamma2 =G2,-n*Gamma3 =G3,其中,G2=-nx*( ux的给定值)and G3 =-ny*( uy的给定值).提供的案例模型求解了f= 1 以及使用如下边界条件的方程组:边界 1,2:u = 0, uxx = uyy = 0边界 3:u = x, uxx = 0, uyy = -x边界 4:u = sin(y), ux = sin(y), uy = cos(y)高于2阶的其他方程可以使用类似的方式来处理,并使用同阶的Lagrange单元使u 的高阶微分尽可能光滑。

5

如何提取 COMSOL Multiphysics 模型数据用于外部后处理?

基本方法:从COMSOL Multiphysics的结果图中提取数据的最简单的方法是使用菜单文件>输出> 当前图形。图形窗口中有一个工具栏按钮(以ASCII 标示)来完成这个任务。对于特定的数据输出,包括文件格式选项,可选择文件>输出> 后处理数据,这时弹出的对话框有很多选项用于实现特定的数据输出。高级方法:使用 MATLABCOMSOLMultiphysics 在数据结构fem.sol中定义和保存因变量和其他变量数据,FEM结构中包含了模型的所有信息,这只是FEM结构中的一部分数据。只要通过菜单文件>输出>FEM结构把它输出后,就可以在 MATLAB命令行中可以获得整个FEM结构的信息。除了解变量本身,还可以获得其他变量。举个例子,在COMSOL Multiphysics 2D 静电应用模式中,因变量是电压V,自动产生的其他变量有电场分量Ex_es、Ey_es和电能密度We_es 等。在绘图参数对话框中,其中的一些变量在表达式列表中列出。如果用户想知道能输出什么图,可以先从这里寻找。用户可以通过菜单物理量>方程式系统 获得更直观的列表,包括变量是如何定义的。每一个对话框有一个变量标签,列出了指定求解域上的变量。另外用户可以访问解变量的一阶、二阶微分。对于2D中求解的V,这些量是Vx、Vy、Vxx、Vxy、Vyx、Vyy。使用 postinterp 命令可以提取任何想要的变量值,其基本语法格式是:postinterp(fem,'expr',xx)其中,fem就是FEM结构,expr是用户想计算的变量或表达式,xx是所对应的坐标。用户可以通过键入“helppostinterp”命令,或在帮助菜单提供的COMSOLMultiphysics CommandReference中找到更多关于postinterp的信息。

2D 案例下面练习对模型库中的一个2D案例模型提取数据,按照如下操作学习如何对给定的坐标集和时间获得解数据。· 在COMSOLMultiphysics的模型库中打开“ResistiveHeating”模型,这个模型可在COMSOLMultiphysics> Multiphysics中找到。· 选择菜单文件> 输出> 以‘fem’的FEM结构,或按Ctrl +F 键,将模型的FEM结构输出到 MATLAB 中。如果此时没有打开命令窗口,会出现一个新命令窗口。· 在命令行中键入坐标数组:x=[0.2 0.5 0.8];y=[0.2 0.5 0.5];· 提取坐标(0.2,0.2),(0.5, 0.5), (0.8,0.5)处的温度:Temp=postinterp(fem,'T',[x;y])结果是包含三个分量的数组。第二分量是NaN,这是COMSOL使用了IEEE中的标准,表示这不是一个数值。这是一个预期的结果,因为坐标(0.5,0.5)位于铜板上的孔内,此坐标上没有温度。用户可以通过如下命令把数据保存为ASCII文本。matrixdata = [x;y;Temp]save data.txt matrixdata -ascii然后用户可以在 Microsoft Excel 或其他软件中使用这些数据。对于输出的更多控制,使用fprintf 来代替 save,参见 help fprintf。· “ResistiveHeating”模型中存在与时间相关的瞬态解。刚才提取的温度是最后时间步t=2000s的,“solnum”选项可以获取其他时间点的数据。使用如下命令提取坐标(0.2, 0.2)上所有时间步的阻抗热。[Time,Heating]=postinterp(fem,'t','Q_dc',[0.2;0.2],'solnum','all');3D 案例下面是一个 3D 模型的例子,根据如下的方法提取任意点和曲线边界上的数据。· 在COMSOLMultiphysics模型库中打开“PacemakerElectrode”案例,这个模型可以在COMSOLMultiphysics > Electromagnetics中找到。· 选择菜单文件>输出>以’fem’的FEM结构,或按Ctrl + F,把FEM结构输出到命令行。· 使用如下命令提取x=0面上的电场分布数据x=0; y=linspace(-0.01,0.01,10); z=linspace(-0.02,0.02,20);[x,y,z]=meshgrid(x,y,z); xx=[x(:),y(:),z(:)]';E=postinterp(fem,'normE_dc',xx,'ext',1);E中的每个元素对应于xx中相应列中的坐标点,例如,E(23)对应的坐标是xx(:,23)。属性’ext’使postinterp 可以在几何区域附近进行外推数据点。· 在3D 模型中使用postinterp提取边界上的定量数据值时,需使用内部表面参数s1 和 s2 参照边界上的点。这形成一个表面-内部坐标系统,这里的技巧是在 x,y 和 z 坐标

变量上进行绘制。注意如果想提取整个边界上的变量值,最简单的方法是使用“输出后处理数据”对话框。接下来访问边界52上的切向电场z 分量(tEz_dc)的数值,其边界是电极表面上的绝缘部分。变量s1和s2 表示0到1之间的值,然而,当处理这个3D表面时并不是使用所有的这些值。使用postinterp在面外尝试插值将导致NaN。为了找出面上可获取的值,先要提取s1-s2 面上x,y和z的坐标。· 使用meshgrid命令创建结构化栅格[s1,s2]=meshgrid(0:0.01:1,0:0.01:1);提取边界52上的坐标:s1=s1(:)';s2=s2(:)';[x,y,z]=postinterp(fem,'x','y','z',[s1;s2],'dom',52,'ext',1);s1(:)把矩阵s1转为列向量,s1(:)’是其转置,换句话说是行向量。postinterp函数要求输入s1和s2的2行n列矩阵,n表示坐标点的数目。'ext',1的属性/值对确保所有的外插值。如果没有这个参数项,则有可能得到的是NaN。· 去掉NaN,仅保持数值ix=~isnan(x);x=x(ix); y=y(ix); z=z(ix); s1=s1(ix); s2=s2(ix);· postinterp命令可以获取边界52 上的切向Ez:[tEz]=postinterp(fem,'tEz_dc',[s1;s2],'dom',52,'ext',1);和在GUI中输出数据相比,通过postinterp命令的主要优势是比较灵活。其过程对不同的变量基本是相同的。

6

处理内存不足问题简介

32 位系统能够访问的存储容量有理论上限(物理内存RAM 和虚拟内存),当模型需要的存储容量超过理论上限时,即会出现“Out of memory”的错误信息。因此,我们推荐使用64位系统,理论上能访问的存储容量没有限制。当模型太大,物理内存RAM 耗尽而使用虚拟内存的时候,计算机的计算速度会明显变慢,因为虚拟内存的速度比RAM 慢很多。下面将列举几条用有限RAM来处理大模型而不降低计算速度的方法。如果使用32位系统,也可以在知识库1030“错误信息——内存不足”中找到一些实用的处理技巧。

运行客户端-服务器模式

当可以访问一个有强大的计算功能的服务器时,较好的选择是在客户机上运行 COMSOL 图形用户界面,在配备有大量 RAM 的服务器上进行计算。这种运行模式,需要浮动版授权(floating network license)的支持。

在 COMSOL Multiphysics 优化模型

特定问题需要的存储容量是有区别的,取决于:· 几何网格的节点数(基本网格)· 形函数的类型,例如,二阶拉格朗日单元。计算网格(扩展网格)的大小取决于形函数的类型以及几何网格· 自变量与因变量的数量· 系统矩阵的稀疏程度,主要取决于不同方程间耦合的自由度。几何和网格的形状也会影响系统矩阵的稀疏程度:一个在表面有很大比例的自由度的薄或者平坦的物体,比一个庞大的实体(如球体或立方体)有更稀疏的系统矩阵。对上面的最后一条的理解是,系统对内存的需求主要取决于 Jacobian 矩阵的非零部分,而不是自由度。例如,使用传导-对流方程和稳态理想气体定律方程进行耦合的非等温流问题, 所有的 5 个变量(u, v, w, p, T)都出现在 5 个方程中(3D 模型),它的 Jacobian 矩阵比单纯的热传导问题要充实得多。这也是在求解热辐射问题的时候需要大量内存的原因,任意一个表面的单元都创建一个满的矩阵块,使得 Jacobian 很充实。更多的信息,请参考知识库“COMSOL Multiphysics 中自由度的定义”。

7

后处理

如果在后处理中出现内存不足的现象,可以增加 Java 使用的堆栈的最大值。在 Windows 平台,修改 COMSOL 安装目录下 bin/comsol.opts 文件,Sun/Linux/Mac OSX 平台修改 COMSOL 目录下 bin/comsol 文件。将 MAXHEAP=256m 中的 256MB 改为更大的数值,例如 512MB。

8

选择更合适的求解器

COMSOL Multiphysics 的求解器总是将每个问题拆分成一个或多个线性系统方程的解。因此,选择直接求解器还是迭代求解器,对线性系统的计算时间和内存需求都有影响。直接求解器使用高斯消元法(Gaussian elimination)求解线性系统,该方法对大部分问题(即使病态系统)都能够得到稳定的、可靠的解。直接求解器是缺省设置的求解器,在1D 和 2D 问题,相对于迭代求解器,它们需要校准的次数更少,计算的速度也更快。但是, 消元过程有时需要消耗大量的内存资源以及计算时间,特别是在 3D 问题上。COMSOL Multiphysics 缺省设置是自动检测矩阵系统是否对称,但是,线性求解器(例如 UMFPACK)求解对称问题的优势不明显。注意,此处所说的对称并非指的是几何对称, 而是 Jacobian 矩阵对称,可参考 COMSOL Multiphysics User's Guide 中的“Solving the Model”,可以获得更详细的信息。

对于 3D 问题,求解器选择的缺省设置是选择迭代求解器,通常情况下,它们对内存的需求更少,而计算速度也更快。为获得更优性能,迭代求解器通常需要谨慎选择预处理器(preconditioner),以下是常用的几个预处理器:· 几何多重网格· 代数多重网格· SSOR 矢量· 不完全 LU· …对于大规模问题,选择一个合适的预处理器是非常有必要的,请参考 COMSOL Multiphysics User's guide 中的“The Linear System Solver”以获得更详细的信息。从 COMSOL Multiphysics V3.4 版本开始,引入分离式求解器(segregated solver), 可以更加灵活的控制内存的开销。这类求解器对于弱耦合的多物理场问题的计算效率尤为明显,因为这些物理量可以分离出来单独求解,而不存在收敛性问题。特别地,相对于常见的非线性求解器,需要花费更少的开销。

9

高效几何建模

通常,第一步是尽量对几何模型进行简化,例如,对于一个对称的平面,你可以选择原有模型的 1/2 或 1/4 设置 1/8 来进行建模。内存的需求并不是线性增长的,而是指数增长(A*n^k, k>1),其中,A 是常数,n 是自由度数,k 是该多项式阶数。K 是个大于 1 的实数,大小取决于几何维度(1D、2D 或者 3D)和求解器的各种设定。这意味着,如果把几何模型减半,对内存的需求比原先的一半还少。需要注意到是,这里的对称,既要几何对称,又要物理学上对称。· 避免几何模型不必要的细节(例如,对于曲线,使用 B 样条代替多条小的连续线段)。· 尝试使用绘图>使用装配和“交互式网格剖分”生成网格。在相邻求解域之间的边界上的单元节点不需要完全匹配的情况下,这种方法可以带来更大的灵活性,同时减少了单元数。· 当选中迭代求解器时,网格的质量显得非常重要,如果单元质量较好,可以获得更好的收敛性和精确度。在薄层区域的三角形或四面体单元中常常出现接近 180 度的角,说明网格质量很低。四边形和六面体单元在某些情况下也会出现网格质量过低的现象。选择网格>网格数统计查看网格质量,正常情况下,网格质量不应该低于 0.01。

64 位 Windows Vista 上的虚拟内存

当求解器使用了所有可供使用的物理内存 RAM 时,将使用虚拟内存对数据进行读写。在64 位的 Vista 系统上,对虚拟内存读写过程中常常出现系统不响应的现象,在模型求解结束之前,任务管理器不可用。解决这种问题的一个办法是,使用 USB 闪存,需要预先开启“ Readyboost” 。参 考 :http://www.microsoft.com/windows/windows-vista/features/readyboost.aspx

10

如果想模拟一个自由空间的静电或静磁问题,应当如何建立求解域?在 外部边界上应使用什么边界条件?

为了找到存在非物理边界的建模区域的最佳尺寸和形状,经常需要平衡数值精确度和模型有效性。一方面,建模区域应当尽可能大,使外部边界对计算结果的影响最小。另一方面, 几何结构太大意味着无法很好地进行求解。

将外部边界影响最小化的最有效方法是增加一个所谓的无限元区域,即在数学上把外部边界的位置按比例扩展到无限,从而有效抑制所有的边界效应。AC/DC 模块中可使用无限元,可参考 AC/DC 模块用户手册中的“AC/DC Modeling: Infinite Elements”章节。

如果没有 AC/DC 模块,外部边界通常采用如下设置就可以得到最佳效果:静电问题用零电荷/对称边界条件,静磁问题用磁绝缘边界条件,这些边界条件都规定场(电场或磁场) 与边界相切。如果清楚地知道场应该是怎么样的,就可以画出粗略地沿着场线的外部边界, 从而使外部边界的影响最小化。

如果精确度比较重要,那就值得比较各种不同网格和区域形状的计算结果。在自由度数目给定的情况下,扩大求解域尺寸提高的精度会被更粗糙的网格产生的精度损失所抵消。为了维持较经济的网格,可以尝试使靠近外部边界的网格相对粗糙,而细化感兴趣区域的网格。

圆 柱 体 间 的 电 势 模 型 ( 模 型 库 COMSOL Multiphysics > Electromagnetics>potential between cylinders)对于感兴趣区域(圆柱体及之间的空间)和周围空间有一个合理的比例。无论如何,图形化结果表明场线的外部受到了建模区域人为设置成盒状的影响。适当尺寸的椭球体对场的干扰或许会较小,但会使用较多的网格单元。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3